class Tableau:
def __init__(self,N):
self.data = [None]*N
self.taille = N
La taille est spécifiée à l'initialisation.
L'indice d'un élément permet de calculer son emplacement mémoire en utilisant
La plage des indices valides est l'intervalle [0,taille[
.
def indice_valide(T,i):
return i >= 0 and i < T.taille
Certains langages acceptent des indices négatifs.
def calculer_indice(T,i):
if i < 0: return T.taille+i
else: return i
T = Tableau(4)
for i in range(-2,2):
print(i,"→",calculer_indice(T,i))
-2 → 2 -1 → 3 0 → 0 1 → 1
Méthodes | Descriptions |
---|---|
modifier _valeur(i,v) |
modificateur, écrit v dans l'élément d'indice i |
lire_valeur(i) |
sélecteur, lit l'élément d'indice i |
taille() |
sélecteur, retourne la taille du tableau |
def modifier_valeur(T,i,val):
if not indice_valide(T,i):
raise IndexError("")
T.data[i] = val
def lire_valeur(T,i):
if not indice_valide(T,i):
raise IndexError("")
return T.data[i]
def taille(T):
return T.taille
class Tableau:
def __init__(self,N):
self.data = [None]*N
self.taille = N
__setitem__ = modifier_valeur
__getitem__ = lire_valeur
__len__ = taille
__str__ = h.convertir_en_texte
T = Tableau(5)
for i in range(T.__len__()):
T.__setitem__(i,i*(i+1)//2)
print(T.__getitem__(2))
print(T.__len__())
print(T.__str__())
3 5 taille: 5, data: [0, 1, 3, 6, 10]
T = Tableau(5)
for i in range(len(T)):
T[i] = i*(i+1)//2
print(T[2])
print(len(T))
print(T)
3 5 taille: 5, data: [0, 1, 3, 6, 10]
|
© Olivier Cuisenaire, 2018 |